#include <iostream>
using namespace std;
class Base
{
public:
    virtual void f() { cout << "Base::f" << endl; }
    virtual void g() { cout << "Base::g" << endl; }
    virtual void h() { cout << "Base::h" << endl; }
    int base;
protected:
private:
};


class Base3 :virtual public Base
{
public:
    virtual void f3() { cout << "Base3::f3" << endl; }
    virtual void g3() { cout << "Base3::g3" << endl; }
    virtual void h3() { cout << "Base3::h3" << endl; }
    int base3;
protected:
private:
};

class Base4 :virtual public Base
{
public:
    virtual void f4() { cout << "Base4::f4" << endl; }
    virtual void g4() { cout << "Base4::g4" << endl; }
    virtual void h4() { cout << "Base4::h4" << endl; }
    int base4;
protected:
private:
};

class Child7 : public Base3, public Base4
{
public:
    virtual void f()  { cout << "child7::f" << endl; }
    virtual void f3() { cout << "child7::f3" << endl; }
    virtual void f4() { cout << "Child7::f4" << endl; }
    virtual void f7() { cout << "Child7::f7" << endl; }
    virtual void g7() { cout << "Child7::g7" << endl; }
    virtual void h7() { cout << "Child7::h7" << endl; }
    int child7;
protected:
private:
};
int main()
{

    std::cout << "Hello World!\n";
    system("pause");
    return 0;
}
